Computer systems generally have several levels of memory; each level of memory can provide differing levels of speed, memory capacity, physical size, power requirements, voltage levels and/or volatility. These aspects are often at odds with each other. For example, increases in speed often lead to corresponding increases in power requirements. For this reason, many systems use a variety of different memories within the same system. From the view of the processor, these memories are often hidden in the sense that common data is temporarily cached in smaller and faster memory circuits. This common data is mapped to larger and slower memory circuits, which are accessed when the faster memory does not contain the desired data. The common data, if changed in the cached memory, can eventually be written to the larger and slower memory circuits. This allows for the slow memory access time to be hidden so long as the faster memory contains the appropriately mapped data.
Computer systems generally contain some type of mass-storage memory that is able to store data when the computer system is powered down or when the memory otherwise loses power. This type of memory is referred to as nonvolatile memory because it is able to maintain data integrity when the computer system is not powered. Nonvolatile memory, however, can be slower by orders of magnitude relative to various volatile memories. Yet, nonvolatile memory can also be less expensive (per unit of memory capacity) and/or less power hungry.
A common type of nonvolatile mass-storage device is a hard disc drive (HDD) that uses a rotating magnetic media. HDDs are used for home-computers, servers, enterprise applications and various other devices. Under normal operation, a computer system transfers sensitive data from temporary memory to a HDD before the computer system is powered down. This allows for the sensitive data to be saved in memory that persists after the power is removed from the computer system. When the computer system is subsequently powered up, this data can be accessed and used by the computer system. HDDs with rotating magnetic media have been in use for many years and have undergone various improvements including efficiency, reliability and memory capacity. Various applications, however, are beginning to use other types of nonvolatile memory with more frequency.
Solid State Devices (SSDs) are one such alternative nonvolatile storage device. SSDs are attractive for many applications because, unlike HDDs, they have no need for moving parts. Thus, they are not subject to mechanical wear inherent in HDDs. One type of SSD uses nonvolatile flash memory to store data. Flash memory is often used for handheld devices for which space and/or power requirements are at a premium. Generally, SSDs are not susceptible to issues relating to physical movement as are relevant to an HDD in which such movement can interrupt accesses to the rotating media. Thus, HDDs often include various mechanisms to compensate for mechanical shocks. Speed, cost and power requirements also factor into the selection of SSDs or HDDs.
While SSDs exhibit various desirable characteristics as relative, for example, to rotating magnetic media, the implementation of SSDs remains challenging and SSDs have not yet replaced HDDs with rotating magnetic media. For example, backing up information in volatile memory can be difficult under power failure conditions, as power capabilities of various backup power supplies can degrade over time. Under such conditions, backup power capabilities can be insufficient to ensure all data is written from the volatile memory circuit during a power-loss event.
Aspects of the present invention, although not limited thereto, can be appreciated in the context of such mass-memory storage devices.